package jp.wug.core;

import com.google.inject.TypeLiteral;

public interface ModelFactory {
    Model create(Object object);

    TypeLiteral<?> getType();

    <T, U> Expression<T, U> register(String name, TypeLiteral<T> inputType, TypeLiteral<U> outputType, ModelFactory child) throws NoSuchMethodException;
}